package br.com.vti.sisp_sicrim.antigo.util;

/**
 * Classe que possui todos os m�todos de valida��es de NEG�CIO
 * 
 * @author Nat�lia
 * 
 */

public class ValidacoesUtil {

	public boolean apenasLetras(String valorCampo) {
		String pattern = "[\\d\\w\\s�-��-�]*";
		if (valorCampo != null && !valorCampo.isEmpty()) {
			if (!valorCampo.matches(pattern)) {
				// UtilBean.enviaMensagemPagina(FacesMessage.SEVERITY_WARN,
				// "� permitido apenas letras!");
				return false;
			}
		} else {
			// UtilBean.enviaMensagemPagina(FacesMessage.SEVERITY_WARN,
			// "O campo nome � obrigat�rio!");
			return false;
		}
		return true;
	}

	public boolean apenasNumeros(String valorCampo) {
		String pattern = "[\\d]*";
		if (!valorCampo.matches(pattern)) {
			// UtilBean.enviaMensagemPagina(FacesMessage.SEVERITY_WARN,
			// "� permitido apenas n�meros!");
			return false;
		}
		return true;
	}

	/*
	 * public static Date verificaCampoDataPreenchido(String dt) throws
	 * SispException { // RETORNA NULL SE A DATA NAO ESTIVER SIDO PREENCHIDA if
	 * (dt.substring(0, 2).equals("  ")) {
	 * enviaMensagemPagina(FacesMessage.SEVERITY_ERROR,
	 * "O campo data � obrigat�rio!", ""); return null; }
	 * 
	 * String data = ""; data = dt.substring(3,5) + "/" + dt.substring(0,2) +
	 * "/" + dt.substring(6,10); Date d = null; try { d = new Date(data);
	 * 
	 * }catch (Exception e){ enviaMensagemPagina(FacesMessage.SEVERITY_ERROR,
	 * "O campo data � obrigat�rio!", ""); e.printStackTrace(); } return d; }
	 */

	private boolean validaCPF(String strCpf) {
		int iDigito1Aux = 0, iDigito2Aux = 0, iDigitoCPF;
		int iDigito1 = 0, iDigito2 = 0, iRestoDivisao = 0;
		String strDigitoVerificador, strDigitoResultado;

		if (!strCpf.substring(0, 1).equals("")) {
			try {
				strCpf = strCpf.replace('.', ' ');
				strCpf = strCpf.replace('-', ' ');
				strCpf = strCpf.replaceAll(" ", "");
				for (int iCont = 1; iCont < strCpf.length() - 1; iCont++) {
					iDigitoCPF = Integer.valueOf(strCpf.substring(iCont - 1, iCont)).intValue();
					iDigito1Aux = iDigito1Aux + (11 - iCont) * iDigitoCPF;
					iDigito2Aux = iDigito2Aux + (12 - iCont) * iDigitoCPF;
				}
				iRestoDivisao = (iDigito1Aux % 11);
				if (iRestoDivisao < 2) {
					iDigito1 = 0;
				} else {
					iDigito1 = 11 - iRestoDivisao;
				}
				iDigito2Aux += 2 * iDigito1;
				iRestoDivisao = (iDigito2Aux % 11);
				if (iRestoDivisao < 2) {
					iDigito2 = 0;
				} else {
					iDigito2 = 11 - iRestoDivisao;
				}
				strDigitoVerificador = strCpf.substring(strCpf.length() - 2, strCpf.length());
				strDigitoResultado = String.valueOf(iDigito1) + String.valueOf(iDigito2);
				return strDigitoVerificador.equals(strDigitoResultado);
			} catch (Exception e) {
				// UtilBean.enviaMensagemPagina(FacesMessage.SEVERITY_WARN,
				// "Campo CPF incorreto.");
				return false;
			}
		} else {
			return false;
		}
	}

}
